<?php
//   +----------------------------------------------------------------------
//   | Copyright (c) 2015-2025 http://www.hdphp.cn All rights reserved.
//   | Licensed ( http://www.hdphp.cn/licenses/ )
//   | Author: Jack <sophia2152@qq.com>
//   | 官方网址: http://www.hdphp.cn
//   | 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用。
//   | 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
//   +----------------------------------------------------------------------
namespace app\model\work;

use hdphp\basic\BaseModel;
use hdphp\traits\ModelTrait;
use think\model\relation\HasOne;

/**
 * Class：企业微信群群成员
 * 创建人：Jack
 * 创建时间：2023/12/11 14:33
 * @package app\model\work
 */
class WorkGroupChatMember extends BaseModel
{

    use ModelTrait;

    /**
     * @var string
     */
    protected $name = 'work_group_chat_member';

    /**
     * @var string
     */
    protected $autoWriteTimestamp = 'int';

    /**
     * @return HasOne
     */
    public function member()
    {
        return $this->hasOne(WorkMember::class, 'userid', 'userid');
    }

    /**
     * @return HasOne
     */
    public function client()
    {
        return $this->hasOne(WorkClient::class, 'external_userid', 'userid');
    }

    /**
     * @param $value
     * @return false|string
     */
    public function getJoinTimeAttr($value)
    {
        return date('Y-m-d H:i:s', $value);
    }

    /**
     * 名称模糊搜索
     * @param $query
     * @param $value
     */
    public function searchNameLikeAttr($query, $value)
    {
        if ('' !== $value) {
            $query->where(function ($query) use ($value) {
                $query->whereIn('userid', function ($query) use ($value) {
                    $query->name('work_client')->whereLike('name', '%' . $value . '%')->field(['external_userid']);
                })->whereOr('userid', 'in', function ($query) use ($value) {
                    $query->name('work_member')->whereLike('name', '%' . $value . '%')->field(['userid']);
                });
            });
        }
    }

}
